package controller;

import DAO.DAOFactory;
import bean.AlunoFacade;
import entidade.Aluno;

import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Thais
 */

@ManagedBean
@ViewScoped
public class AlunoController implements Serializable {

    @EJB
    private bean.AlunoFacade ejbFacade;
    private Boolean dataFound = false;
    private Aluno alunoSelecionado;
    private String nomeAlunoDigitado;
    private AlunoDataModel alunosDM;

    public AlunoFacade getEjbFacade() {
        return ejbFacade;
    }

    public void setEjbFacade(AlunoFacade ejbFacade) {
        this.ejbFacade = ejbFacade;
    }

    public String getNomeAlunoDigitado() {
        return nomeAlunoDigitado;
    } 

    public void setNomeAlunoDigitado(String nomeAlunoDigitado) {
        this.nomeAlunoDigitado = nomeAlunoDigitado;
    }

    public AlunoController() {
        
    }

    private AlunoFacade getFacade() {
        return ejbFacade;
    }

    public Boolean getDataFound() {
        return dataFound;
    }

    public void setDataFound(Boolean dataFound) {
        this.dataFound = dataFound;
    }

    public AlunoDataModel getAlunosDM() {
        return alunosDM;
    }

    public void pesquisarAluno() {
        List<Aluno> alunos;
        this.dataFound = true;
        alunos = DAOFactory.obterAlunoDAO().buscarPorNome(nomeAlunoDigitado);
        alunosDM = new AlunoDataModel(alunos);
    }

    public Aluno getAlunoSelecionado() {
        return alunoSelecionado;
    }

    public void setAlunoSelecionado(Aluno alunoSelecionado) {
        this.alunoSelecionado = alunoSelecionado;        
    }

    public void onRowSelect(SelectEvent event) {
     //   System.out.println("--- onRowSelect" + alunoSelecionado.getNome());
        alunoSelecionado = (Aluno) event.getObject();
        FacesContext fc = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
        session.setAttribute("alunoSelecionado", alunoSelecionado);
       
    }
}
